#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
// 系统调用接口
int main()
{
    umask(2);

    //int fd=open("log.txt",O_WRONLY|O_CREAT|O_TRUNC);
    //int fd=open("log.txt",O_WRONLY|O_CREAT|O_TRUNC,0666);
    int fd=open("log.txt",O_RDONLY|O_CREAT,0666);
   
    if(fd<0)
    {
        perror("open");
        return 1;
    }
    
    // ssize_t write(int fd, const void *buf, size_t count);
    char buf[64]="hello write";
   
    //write(fd,buf,strlen(buf));
    //write(1,buf,strlen(buf));
    // write(1,buf,sizeof(buf));

    // ssize_t read(int fd, void *buf, size_t count);
    read(fd,buf,sizeof(buf)-1);
    buf[63]='\0';
    printf(buf);
    fflush(stdout);

    close(fd);

    return 0;
}





//#include <stdio.h>
//#include <stdlib.h>
//#include <string.h>
//// 复习C语言文件的库接口，再来熟悉Linux文件的系统接口
//int main()
//{
//
//    //FILE* pf=fopen("log.txt","w");
//    FILE* pf=fopen("log.txt","r");
//
//    if(pf==NULL)
//    {
//        perror("fopen");
//        exit(1);
//    }
//
//    // read 
//    //char buf[64];
//    //memset(buf,'\0',sizeof(buf));
//
//    //fread(buf,sizeof(buf),1,pf);
//    //fscanf(pf,"%s",buf); // int fscanf(FILE *stream, const char *format, ...);
//    //fgets(buf,sizeof(buf),pf);//char *fgets(char *s, int size, FILE *stream); 
//    //fprintf(stdout,"%s\n",buf);
//
//    // write
//    //char buf[]="hello file\n";
//     
//    //fwrite("hello fwrite\n",strlen("hello fwrite\n"),1,pf); //size_t fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream);---返回值是实际写入的个数
//    //fwrite("hello fwrite\n",1,strlen("hello fwrite\n"),pf); //size_t fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream);---返回值是实际写入的个数
//    //fputs("hello fputs\n",pf); //int fputs(const char *s, FILE *stream);---返回值为0(非负数)时，表示写入成功，写入失败，返回EOF(-1)
//    //int ret=fprintf(pf,"%s","hello fprintf\n"); //int fprintf(FILE *stream, const char *format, ...);---返回写入的字符个数
//    //printf("%d\n",ret);
//
//    fclose(pf);
//    pf=NULL;
//
//    return 0;
//}
//


//#include <stdio.h>
//#include <sys/types.h>
//#include <sys/stat.h>
//#include <fcntl.h>
//#include <unistd.h>
//#include <string.h>
//int main(int argc,char* argv[],char* env[])
//{
//    // w:如果文件不存在则进行创建，打开文件之后将文件内容清空，并且从文件开头进行插入
//    // FILE* pf=fopen("log.txt","w");
//    // 系统调用open
//    // int open(const char *pathname, int flags, mode_t mode);
//    int fd=open("log.txt",O_WRONLY|O_CREAT|O_TRUNC,0666);
//    if(fd>0)
//    {
//        printf("open success：%d\n",fd);
//        char buf[]="hello write\n";
//        write(fd,buf,strlen(buf));
//    }
//    
//    //fclose(pf);
//
//    //pf=NULL;
//
//    //int close(int fd);
//    close(fd);
//
//    return 0;
//}
